package cn.rulian.demo.single;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 定时任务样例 <br>
 * 
 * 1、参考说明 ：http://blog.csdn.net/loongshawn/article/details/50663393
 */

//@Component  //定义为Spring Bean。 ---【实际应用时放开注释】---
//@EnableScheduling //启用定时任务支持。 ---【实际应用时放开注释】---
public class TaskDemo
{
	private static final Logger logger = LoggerFactory.getLogger(TaskDemo.class);

	/*
	 * 一个cron表达式有至少6个（也可能7个）由【空格】分隔的时间元素。
	 * 参数依次说明：秒(0~59)、分(0~59)、小时(0~23)、天(0~31)、月(0~11)、星期(1~7)、年(1970~2099)
	 * 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?
	 * http://biaoming.iteye.com/blog/39532
	 */
	//@Scheduled(cron = "0 0/5 8-20 * * ?") //每天早8点至晚8点之间执行，间隔5分钟。 ---【实际应用时放开注释】---
	public void TaskOne()
	{
		Thread current = Thread.currentThread();
		System.out.println("定时任务1:" + current.getId());
		logger.info("定时任务1:" + current.getId() + ",name:" + current.getName());
	}
	
	//@Scheduled(initialDelay=5000,fixedDelay=3000) //系统启用后5秒开始执行，上一任务【完成】至下一任务【开始】间隔3秒。 ---【实际应用时放开注释】---
	//@Scheduled(initialDelay=5000,fixedRate=3000) //系统启用后5秒开始执行，上一任务【开始】至下一任务【开始】间隔3秒。 ---【实际应用时放开注释】---
	public void TaskTwo()
	{
		Thread current = Thread.currentThread();
		System.out.println("定时任务2:" + current.getId());
		logger.info("定时任务2:" + current.getId() + ",name:" + current.getName());
	}
	
}
